package com.etc.dao;

import com.etc.dto.CountVO;
import com.etc.entity.Order;
import org.apache.ibatis.annotations.Param;
import org.aspectj.weaver.ast.Or;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
public interface OrderMapper {
    /**
     * 根据对象条件查询预约表
     */
    List<Order> findByOrderdetail(Order oder);

    /**
     * 根据对象条件查询预约表,再根据预约时间升序
     */
    List<Order> findByOrderdetailByDoctorIdAsc(Order order);

    /**
     *根据集合条件批量插入
     */
    boolean insertOrderList(List<Order> orderList);

    /**
     * 根据主键更新
     */
    boolean updateBykey(Order order);

    /**
     * 根据主键组成的集合删除
     */

    boolean deleteByKeyList(List<String> stringList);

    /**
     * 根据医生ID查找订单
     * @param doctorId
     * @return
     */
    List<Order> findOrderByDoctorId(String doctorId);

    /**
     * 根据就诊人ID查找订单
     * @param patientId
     * @return
     */
    List<Order> findOrderByPatientId(String patientId);

    /**
     * 查询订单医生就诊人支付列表
     * @return
     */
    List<Order> findOrderPatientDoctorPayList(Order order);

    /**
     * 查询支付订单以及订单详情
     * @return
     */
    List<Order> findPayAndDetailList(Order order);

    /**
     * 查询订单所有信息
     * @return
     */
    List<Order> findOrderPatientDoctorList();

    /**
     * 获得该医生一天时间里的所有预约对象
     * @param doctorId
     * @param start
     * @param end
     * @return
     */
    List<Order> findOrderByDoctorAndRange(@Param("doctorId") String doctorId,@Param("start") String start,@Param("end") String end);

    /**
     * 统计医生对应的患者总数
     * @return
     */
    Integer Count(String doctorId);
}
